<html>
<head>
<title>AdvanceCOMP MNG Compression Utility</title>
</head>
<body>
<center><h2>AdvanceCOMP MNG Compression Utility</h2></center>
<h2><a name="1">1</a> 
Synopsis
</h2>
<pre>
advmng [-l, --list] [-z, --recompress]
&nbsp;&nbsp;&nbsp;&nbsp;[-x, --extract] [-a, --add RATE MNG_FILE PNG_FILES...]
&nbsp;&nbsp;&nbsp;&nbsp;[-0, --shrink-store] [-1, --shrink-fast] [-2, --shrink-normal]
&nbsp;&nbsp;&nbsp;&nbsp;[-3, --shrink-extra] [-4, --shrink-insane] [-i, --iter N]
&nbsp;&nbsp;&nbsp;&nbsp;[-s, --scroll HxV] [-S, --scroll-square]
&nbsp;&nbsp;&nbsp;&nbsp;[-e, --expand] [-r, --reduce]
&nbsp;&nbsp;&nbsp;&nbsp;[-c, --lc] [-C, --vlc] [-f, --force] [-q, --quiet] [-v, --verbose]
&nbsp;&nbsp;&nbsp;&nbsp;[-h, --help] [-V, --version] FILES...
</pre>
<h2><a name="2">2</a> 
Description
</h2>
The main purpose of this utility is to recompress MNG
files to get the smallest possible size.
<p>
Please note that this utility is not able to read
a generic file. It's granted to be able to read only
the files generated by the AdvanceMAME emulator.
<p>
To compress the files this utility uses the following
strategies:
<ul>
<li>
Remove all ancillary chunks.
</li>
<li>
Use the MNG Delta feature to compress video clips with
only small changes between frames.
</li>
<li>
Use the MNG Move feature to compress video clips with
a scrolling background (option -s).
</li>
<li>
Reduce the color depth to 8 bit (option -r).
</li>
<li>
Use the 7zip Deflate implementation.
</li>
</ul>
<h2><a name="3">3</a> 
Commands
</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-l, --list FILES...
</strong></td></tr><tr><td>
List the content of the specified files.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-z, --recompress FILES...
</strong></td></tr><tr><td>
Recompress the specified files. If the -1, -2, -3
options are specified, it's used the smallest file
choice from the previous compressed data and the
new compression. If the -0 option is specified the
file is always rewritten without any compression.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-x, --extract FILES...
</strong></td></tr><tr><td>
Extract all the .png frames in the .mng clips.
You can use the --shrink options to control the
compression ratio of the .png files. The extracted
images are always 24 bit images with alpha channel.
You can remove the alpha channel with the -n option.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-a, --add RATE MNG_FILE PNG_FILES...
</strong></td></tr><tr><td>
Compress all the .png files on the command line
as a .mng file. All the .png files must have the
same size and the same bit depth. You must also
specify an integer frame rate to use in the
.mng file.
</td></tr>
</table>
<h2><a name="4">4</a> 
Options
</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-0, --shrink-store
</strong></td></tr><tr><td>
Disable the compression. The file is
only stored and not compressed. The file is always
rewritten also if it's bigger.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-1, --shrink-fast
</strong></td></tr><tr><td>
Set the compression level to "fast" using the zlib
compressor.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-2, --shrink-normal
</strong></td></tr><tr><td>
Set the compression level to "normal" using the 7z
compressor.
This is the default level of compression.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-3, --shrink-extra
</strong></td></tr><tr><td>
Set the compression level to "extra" using the 7z
compressor.
You can define the compressor iterations with
the -i, --iter option.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-4, --shrink-insane
</strong></td></tr><tr><td>
Set the compression level to "insane" using the zopfli
compressor.
You can define the compressor iterations with
the -i, --iter option.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-i, --iter N
</strong></td></tr><tr><td>
Define an additional numer of iterations for the 7z and zopfli
compressors for modes -3 and -4.
More iterations usually give a better compression, but may
require a lot more time.
Try for example with 10, 15, 20, and so on.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-s, --scroll HxV
</strong></td></tr><tr><td>
The "-s HxV" option specifies the size of the pattern
(H width x V height) used to check for a
scrolling background. The size is expressed in
pixels and it must be bigger or equal than the
scrolling speed of the background. For example
take the game 1942 that scrolls vertically by 1
pixel every frame. If you recorded with an interleave
factor of 2 the vertical scrolling speed is
1*2 = 2. In this case the minimum pattern is "-s 0x2".
Generally you can use "-s 8x8" and use bigger
values only for games scrolling faster. If the
game scrolls only horizontally or vertically you can
speed up a lot the compression with monodirectional
patterns like "-s 16x0" or "-s 0x16".
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-S, --scroll-square N
</strong></td></tr><tr><td>
This option is like the option "-s NxN" but excludes
big movement on both directions reducing the computation
time. Specifically the check done is X+Y&lt;=N.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-r, --reduce
</strong></td></tr><tr><td>
Force the color reduction to 8 bit. The reduction is
really done only if any frame have less than 256 colors
and if no alpha channel is present. To force the reduction
also if an alpha channel is present use the -n option.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-e, --expand
</strong></td></tr><tr><td>
Force the color expansion to 24 bit.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-n, --noalpha
</strong></td></tr><tr><td>
Remove the alpha channel if present.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-c, --lc
</strong></td></tr><tr><td>
Force the use of the MNG LC (Low Complexity)
specifications. It disables the delta compression.
The file is always rewritten also if it's bigger.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-C, --vlc
</strong></td></tr><tr><td>
Force the use of the MNG VLC (Very Low Complexity)
specifications. It disables the delta compression
and the precise timing. Warning! you may lose the
correct timing information because the VLC format
only supports integer frequency. The file is always
rewritten also if it's bigger.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-f, --force
</strong></td></tr><tr><td>
Force the use of the new file also if it's bigger.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-q, --quiet
</strong></td></tr><tr><td>
Don't print the filenames.
</td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left"><td><strong>
-v, --verbose
</strong></td></tr><tr><td>
Print more information on the compression process.
</td></tr>
</table>
<h2><a name="5">5</a> 
Examples
</h2>
A good tradeoff of recompression and time is the command :
<p>
<table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td width="5%"></td><td width="95%">
advmng -z -r -S 16 *.mng
</td></tr></table>
<p>
To create a .mng file from a series of .png files use the
command :
<p>
<table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td width="5%"></td><td width="95%">
advmng -a 30 video.mng video*.png
</td></tr></table>
<p>
To extract all the images in a .mng file use the command :
<p>
<table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td width="5%"></td><td width="95%">
advmng -x video.mng
</td></tr></table>
<h2><a name="6">6</a> 
Copyright
</h2>
This file is Copyright (C) 2003 Andrea Mazzoleni, Filipe Estima
<h2><a name="7">7</a> 
See Also
</h2>
advzip(1), advpng(1), advdef(1)
</body>
</html>
